package com.init.bootframe.system.dao;

import java.util.List;

import com.init.bootframe.system.vo.MenuVO;
import com.init.bootframe.system.vo.ModuleVO;
import org.springframework.stereotype.Repository;

@Repository
public interface IMenuDao {

	/**
	 * 添加栏目
	 * 
	 * @param menuVO
	 * @return
	 */
	public void addMenu(MenuVO menuVO);

	/**
	 * 查询栏目
	 * 
	 * @param menuVO
	 * @return
	 */
	public MenuVO findMenu(MenuVO menuVO);

	/**
	 * 修改栏目
	 * 
	 * @param menuVO
	 * @return
	 */
	public void updateMenu(MenuVO menuVO);

	/**
	 * 批量修改菜单的位置
	 * 
	 * @param menuVO
	 */
	public void updateBatchMenu(MenuVO menuVO);

	/**
	 * 删除栏目
	 * 
	 * @param menuVO
	 * @return
	 */
	public void deleteMenu(MenuVO menuVO);

	/**
	 * 根据用户查询栏目
	 * 
	 * @param menuVO
	 * @return
	 */
	public List<MenuVO> findUserMenuOne(MenuVO menuVO);

	/**
	 * 查询栏目
	 * 
	 * @param menuVO
	 * @return
	 */
	public List<MenuVO> findMenus(MenuVO menuVO);
	
	/**
	 * 查询用户栏目
	 * 
	 * @param menuVO
	 * @return
	 */
	public List<MenuVO> findMenuListByUser(MenuVO menuVO);

	/***************** 功能操作 ********************/

	/**
	 * 添加功能
	 * 
	 * @param moduleVO
	 * @return
	 */
	public void addModule(ModuleVO moduleVO);

	/**
	 * 查询功能详细信息
	 * 
	 * @param moduleVO
	 * @return
	 */
	public ModuleVO findModule(ModuleVO moduleVO);

	/**
	 * 修改功能
	 * 
	 * @param moduleVO
	 * @return
	 */
	public void updateModule(ModuleVO moduleVO);

	/**
	 * 删除功能
	 * 
	 * @param moduleVO
	 * @return
	 */
	public void deleteModule(ModuleVO moduleVO);

	/**
	 * 查询所有功能信息
	 * 
	 * @param moduleVO
	 * @return
	 */
	public List<ModuleVO> findModules(ModuleVO moduleVO);

	/**
	 * 查询所有功能信息总数
	 * 
	 * @param moduleVO
	 * @return
	 */
	public int findModulesCount(ModuleVO moduleVO);

	/**
	 * 查询所有菜单下栏目功能信息
	 * 
	 * @param menuVO
	 * @return
	 */
	public List<MenuVO> findMenuModuleList(MenuVO menuVO);
}
